IntoIterator trait
その型をiteratorに変換するtrait
IntoIteratorを実装する型のことを「iterable」と呼ぶ
docs
iterator adapter
定義
code:rs
trait IntoIterator {
type Item;
type IntoIter: Iterator<Item = Self::Item>;
fn into_iter(self) -> Self::IntoIter;
}
into_iter()
実装した型の例
[T], Vec<T>, Range<A>, etc.
関連
FromItelator trait
https://doc.rust-lang.org/std/iter/trait.FromIterator.html
/mrsekut-book-4873118557/341 (15.1 IteratorトレイトとIntoIteratorトレイト)
#wip
/mrsekut-book-4873118557/344 (15.2.2 IntoIteratorの実装)
for..inは実際は以下のようなコードを糖衣構文(?)らしい
code:rs
let mut iterator = (&v).into_iter();
while let Some(element) = iterator.next() {
println!("{}", element);
}
実際にそう変換しているのかは知らんけど、同義らしい
/mrsekut-book-4873118557/342
into_iter()でiteratorに変換して、.next()を繰り返し呼んでる